package com.xltq.dao;

import com.xltq.entity.Item;
import com.xltq.entity.Orders;

import java.util.List;


//操作订单的操作
public interface IOrdersDao {
    /**
     * 添加订单信息
     *
     * @param orders 封装订单信息的实体类
     * @throws Exception
     */
    void insertOrders(Orders orders) throws Exception;

    /**
     * 添加订单项(将购物车中数据添加到订单项)
     *
     * @param items 封装着订单项信息的list集合
     * @throws Exception
     */
    void insertItems(List<Item> items) throws Exception;

    /**
     * 通过用户id获取用户的所有订单
     *
     * @param uid 用户id
     * @return 存储用户订单信息的List集合
     * @throws Exception
     */
    List<Orders> selectOrdersByUid(int uid) throws Exception;

    /**
     * 获取单个订单信息[订单和地址]
     *
     * @param oid 订单id
     * @return 单个订单的信息
     * @throws Exception
     */
    Orders selectOrdersByOid(String oid) throws Exception;

    /**
     * 获取订单项中商品信息
     *
     * @param oid 订单id
     * @return 获取订单中所有的商品信息
     * @throws Exception
     */
    List<Item> selectItemsByOid(String oid) throws Exception;

    /**
     * 通过订单id号修改订单支付状态
     *
     * @param oid   订单id
     * @param state 订单状态
     * @throws Exception
     */
    void updateStateByOid(String oid, String state) throws Exception;
}
